The present invention relates generally to systems for computer graphics. More specifically, the present invention includes a method and apparatus for rendering three-dimensional volumes for visualization in scientific, medical and other environments.
Computer systems typically create three-dimensional images using a mosaic-like approach where each three-dimensional object is drawn as a mesh of two-dimensional polygons. These two-dimensional polygons, or surface primitives, are transformed in collections of pixels using a process known as rasterization. The rasterized pixels can then be displayed on an output device such as a video monitor.
For many applications, meshes of two-dimensional geometric primitives are an effective method for modeling three-dimensional objects. This is partially due to the fact that many graphics systems include specialized hardware for rasterizing two-dimensional geometric primitives. This hardware allows these systems to rapidly rasterize and display the two-dimensional primitives used to model three-dimensional objects.
The surface approach is especially effective in cases where the inside of a three-dimensional object does not influence its outer appearance. Solid, nontranslucent objects are examples of objects of this type. These objects may be accurately modeled as meshes of surface polygons. In many other cases, however, the interiors of three-dimensional objects are important to their appearances. Translucent objects like jelly, marbles and clouds are examples of cases where the inside of an object contributes to its overall appearance. The internal structure of these objects makes them difficult to display using traditional two-dimensional polygon meshes.
Abstract data sets, such as those produced by medical, seismological or microscopic equipment, are another area where traditional two-dimensional methods are difficult to apply. Data sets of this type are often best viewed as translucent three-dimensional objects. This is why such objects are difficult to display as two-dimensional polygon meshes.
For this reason, a need exists for a method for modeling three-dimensional objects. This need is particularly important for applications that display translucent three-dimensional objects. It is also important for applications that display abstract data sets including medical, seismological, microscopic and other scientific data sets, such as fluid flow data sets.
The present invention includes a method and apparatus for modeling three-dimensional objects. The method of the present invention uses the concept of volumetric objects. Volumetric objects are, in some ways, analogous to the surface-based objects that are typically used to create computer generated images. Each volumetric object is defined as a combination of volumetric appearance and volumetric geometry. The term volumetric appearance refers to the visual appearance of the points included in a volumetric object. Volumetric appearance may be defined using any technique that maps visual attributes to voxels. Examples of these techniques include texture mapping, per-vertex coloring and shading, translucency, transparency and fog techniques. In many cases, a volumetric object""s volumetric appearance will correspond to a real or generated data set. As an example, a volumetric appearance may be all of part of the data collected for a magnetic resonance image (MRI). The term volumetric geometry refers to the three-dimensional shape of the volumetric object.
The two attributes (volumetric geometry and volumetric appearance) are decoupled. This means that volumetric geometry may be changed independently of volumetric appearance. As a result, the same volumetric appearance may be used to create an endless range of different volumetric objects each having a differently sized or shaped volumetric geometry. The volumetric appearance for a volumetric object is mapped onto the volumetric object as part of the rendering process.
Prior to the rendering process, each volumetric object is constructed as a tessellated series of one or more volumetric primitives. Each volumetric primitive is a three-dimensional object. Typically, these three-dimensional objects will be polyhedra such as tetrahedra. Other solids may be used, however, including solids such as spheres or ellipsoids and other analytic solid shapes.
Rendering of volumetric objects may be performed using a range of different techniques. In most cases, it makes sense to choose a technique that is supported by the underlying graphics environment. Many of these environments are optimized for the rendering of polygons. For these environments, it will generally be preferable to render volumetric objects in three stages: polygonization, depth-sorting, and compositing.
During the first of these stages, polygonization, each volumetric primitive in the volumetric object is sampled with a series of sampling surfaces. The sampling surfaces may be parallel or concentric. More generally, any nonintersecting distribution of surfaces may be used. Each intersection between a sampling surface and its volumetric primitive is converted into an edge list, which can be tesselated into one or more polygons, often triangles. The result is a list of polygons, which are planar in most cases. Appearance parameters are interpolated accordingly. The list of polygons is then handed back to the application process that is rendering the volumetric object. This application may then perform further processing of the polygons or their appearances, or mix the polygons with other types of primitives including zero, one or two-dimensional primitives (i.e. points, lines and surfaces).
During the second stage, depth-sorting, the list of polygons is sorted back-to-front or front-to-back, depending on the treatment of its appearance. This ensures that proper transparency of overlapping polygons will be maintained during the rendering process. In particular, this accounts for attenuation or filtering effects between adjacent polygons. In other cases, the appearance of a volumetric primitive is defined as a simple summation of its included polygons. In these cases, the depth sorting stage is unnecessary and may be omitted.
During the final stage, compositing, volumetric appearance is mapped onto polygons. The mapping may be accomplished using any technique that maps visual attributes to voxels. Examples of these techniques include texture mapping, per-vertex coloring and shading, translucency, transparency and fog techniques. The polygons are composited together in the frame buffer, or other device, to form the final displayable image.
In this way, volumetric objects provide a convenient and powerful method for modeling three-dimensional solid objects. This method is especially attractive because it does not depend on specialized hardware or software environments. Instead, by constructing volumetric objects using volumetric primitives and, ultimately, decomposing those volumetric primitives into aligned sets of polygons, the present invention provides a method that is adaptable to traditional graphics pipelines.
In other environments, volumetric objects can be rendered using other techniques such as ray casting, shear warp, or volume splatting or any other rasterization technique. These techniques may be more suitable when they are supported by the underlying graphics environment.
Advantages of the invention will be set forth, in part, in the description that follows and, in part, will be understood by those skilled in the art from the description herein. The advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims and equivalents.